function addTwo(x) { return x + 2 }
function addThree(x) { return x + 3 }
function addFive(x) { return x + 5 }

function compose(...fns) {
  // 初值是个 Promise 对象， .then 将 x 传给 fn 的 x   然后.then 创建的又是一个Promise 对象
  return x => fns.reduce((promise, fn) => promise.then(fn), Promise.resolve(x))
}

let addTen = compose(addTwo, addThree, addFive)

addTen(10).then(console.log)


// 简单举例
new Promise((resolve) => {
  resolve(100)
}).then().then(console.log)

